using namespace std;

#include "Indice.h"

int NoIndexado::buscar(Indice* indice, list<string> key) {
	/*
	 * Indice hereda de Archivo. El archivo tiene guardado el nombre de archivo y la estrategia.
	 *
	 * Tiene que levantar la metadata para ver tamaño y tipo.
	 * Levanta un componente y revisa si es el buscado (el registro o los registros dentro del bloque)
	 * Si es, devuelve el offset.
	 * Sino, levanta el siguiente
	 * Si no lo encuentra, excepcion
	 */

	cout << "Entro a busqueda secuencial" << endl;

	throw 1;

	int offset = 0;
	bool noEncontrado = true;

	do {
		Registro c;
		try {

			c = indice->getEstrategiaAlmacenamiento()->recuperar(indice, offset,
					key);
			//recuperar tiene q tirar excepcion si el offset es cualquiera o eof.
		} catch (int) {
			throw 1;
		}

		cout << "Pincho?" << endl;
		int pos = c.esBuscado(key);
		if (pos != -1)
			noEncontrado = false;

		offset += indice->getLongBloque();
		//ojo, long bloque no sirve para registros! buscar otra forma.
	} while (noEncontrado);

	offset -= indice->getLongBloque();
	return offset;
}

void NoIndexado::indexar(Indice* indice, list<string> key, int offset){}
int NoIndexado::eliminar(Indice* indice, list<string> key){
	return 1;
}
